package com.zhentao.subscription.domain.dto;

import jakarta.validation.constraints.NotBlank;

import java.util.List;

public class TemplateDTO {
    private Long id;

    @NotBlank
    private String name;

    @NotBlank
    private String scopeType; // SYSTEM/CUSTOMS

    @NotBlank
    private String subscribeMode; // RAW/AGG

    @NotBlank
    private String dataFormat; // CSV/TXT/EXCEL/331

    @NotBlank
    private String dataSource; // 日库/月库/发布

    private List<String> groupFields; // 汇总字段
    private String numericAggFields; // JSON
    private String conditions; // JSON
    private List<String> selectedFields; // 字段

    // Getters and Setters
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public String getScopeType() { return scopeType; }
    public void setScopeType(String scopeType) { this.scopeType = scopeType; }

    public String getSubscribeMode() { return subscribeMode; }
    public void setSubscribeMode(String subscribeMode) { this.subscribeMode = subscribeMode; }

    public String getDataFormat() { return dataFormat; }
    public void setDataFormat(String dataFormat) { this.dataFormat = dataFormat; }

    public String getDataSource() { return dataSource; }
    public void setDataSource(String dataSource) { this.dataSource = dataSource; }

    public List<String> getGroupFields() { return groupFields; }
    public void setGroupFields(List<String> groupFields) { this.groupFields = groupFields; }

    public String getNumericAggFields() { return numericAggFields; }
    public void setNumericAggFields(String numericAggFields) { this.numericAggFields = numericAggFields; }

    public String getConditions() { return conditions; }
    public void setConditions(String conditions) { this.conditions = conditions; }

    public List<String> getSelectedFields() { return selectedFields; }
    public void setSelectedFields(List<String> selectedFields) { this.selectedFields = selectedFields; }
}

